SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[paFinalizarTramite]

@IdTramite INT

AS
SET NOCOUNT ON
DECLARE @Error INT
SET @Error = 0
DECLARE @Tracking INT
DECLARE @Paso INT

BEGIN TRANSACTION 

-- Obtengo el tracking que quiero actualizar
SELECT @Tracking = TR.IdTracking, @Paso = P.IdPaso
	FROM tb_Tracking TR 
	INNER JOIN tb_Tareas T ON TR.Tarea = T.IdTarea 
	INNER JOIN tb_Pasos P ON P.Tarea = T.IdTarea
	WHERE T.Tipo = 2 AND Tramite = @IdTramite AND TR.Estado = 4

-- Actualizo el tracking
UPDATE tb_Tracking SET Hasta = GETDATE(), Estado = 7 WHERE IdTracking = @Tracking

SELECT @Error = @@ERROR

IF @Error <> 0 GOTO Salir

-- Inserto el tracking de pasos como correcto
INSERT INTO tb_TrackingDePasos (Tracking, Paso, VistoBueno, Observacion, Documento, Decision)
	VALUES(@Tracking, @Paso, 'S', NULL, NULL, NULL)

SELECT @Error = @@ERROR

IF @Error <> 0 GOTO Salir

-- Actualizo el estado del tramite
UPDATE tb_TramitesDocumentos SET Estado = 6, FechaYHoraFin = GETDATE() WHERE IdTramite = @IdTramite

SELECT @Error = @@ERROR

IF @Error <> 0 GOTO Salir

Salir:

IF @Error = 0
	COMMIT TRANSACTION
ELSE
	ROLLBACK TRANSACTION
GO
GRANT EXECUTE ON  [dbo].[paFinalizarTramite] TO [GestionDeDocumentos]
GO
